package com.itheima.a01mathdemo1;

public class MathDemo1 {
    public static void main(String[] args) {
        //public static int abs(int a)					// 返回参数的绝对值
        //public static double ceil(double a)				// 返回大于或等于参数的最小整数
        //public static double floor(double a)			// 返回小于或等于参数的最大整数
        //public static int round(float a)				// 按照四舍五入返回最接近参数的int类型的值
        //public static int max(int a,int b)				// 获取两个int值中的较大值
        //public static int min(int a,int b)				// 获取两个int值中的较小值
        //public static double pow (double a,double b)	// 计算a的b次幂的值
        //public static double sqrt (double a)	        // 返回a的平方根
        //public static double cbrt (double a)	        // 返回a的立方根
        //public static double random()					// 返回一个[0.0,1.0)的随机值


        //abs(int a)	返回参数的绝对值
        //System.out.println(Math.abs(88));
        //System.out.println(Math.abs(-88));
        //bug:
        //以int类型为例，取值范围：-2147483648 ~ 2147483647
        //如果没有正数与负数对应，那么传递负数结果有误
        //-2147483648没有正数与之对应，所有abs结果产生bug
        //System.out.println(-2147483648); // -2147483648
        //System.out.println(Math.absExact(-2147483648)); // 报错，ArithmeticException


        //ceil(double a)	返回大于或等于参数的最小整数
        //进一法，往数轴正方向进一
        //System.out.println(Math.ceil(12.34));//13.0
        //System.out.println(Math.ceil(12.54));//13.0
        //System.out.println(Math.ceil(-12.34));//-12.0
        //System.out.println(Math.ceil(-12.54));//-12.0


        //floor(double a)	返回小于或等于参数的最大整数
        //System.out.println(Math.floor(12.34));//12.0
        //System.out.println(Math.floor(12.54));//12.0
        //System.out.println(Math.floor(-12.34));//-13.0
        //System.out.println(Math.floor(-12.54));//-13.0


        //round(float a)	按照四舍五入返回最接近参数的int类型的值
        //先不看符号，四舍五入后再加符号
        //System.out.println(Math.round(12.34));//12
        //System.out.println(Math.round(12.54));//13
        //System.out.println(Math.round(-12.34));//-12
        //System.out.println(Math.round(-12.54));//-13
        //System.out.println(Math.round(12.5));//13
        //System.out.println(Math.round(-13.5));//-13


        //max(int a,int b)	获取两个int值中的较大值
        //System.out.println(Math.max(10,20));//20


        //min(int a,int b)	获取两个int值中的较小值
        //System.out.println(Math.min(10,20));//10


        //pow (double a,double b)	// 计算a的b次幂的值
        //System.out.println(Math.pow(2,3));//8.0
        //细节：
        //如果第二个参数 0 ~ 1 之间的小数
        //System.out.println(Math.pow(4,0.5));//2.0
        //如果第二个参数为负数
        //System.out.println(Math.pow(2,-2));//0.25
        //建议：
        //第二个参数：一般传递大于等于1的正整数


        //开根号
        //System.out.println(Math.sqrt(4));//平方根，2.0
        //System.out.println(Math.cbrt(8));//立方根，2.0


        //random()	 返回一个[0.0,1.0)的随机值
        System.out.println(Math.floor(Math.random() * 100) + 1);//返回[1,100]的随机数
    }

}
